Software can include valuable intellectual property that hackers or competitors may wish to extract from the software and to exploit for their own purposes. Some conventional solutions, such as trusted execution environments, can provide protection for data on a computing device. However, these solutions do not provide protection for the software code itself.